<?php
class Page_users extends V_View {
        function index () {
        	// Создание списка групп
            $groups=V_DB::fetchAll('SELECT * FROM v_user_groups');
            // Создание списка городов
            $citys=V_DB::fetchAll('SELECT * FROM v_work_list_city');
            // Создание списка услуг
            $services=V_DB::fetchAll('SELECT * FROM v_service_list');

            if (isset ($groups)) $this->assign('groups',$groups);
            if (isset ($citys)) $this->assign('citys',$citys);
            if (isset ($services)) $this->assign('services',$services);
            $this->assign('page_title','Пользователи');
            $this->display('header.tpl');
            $this->display('pages/users/index.tpl');
            $this->display('footer.tpl');
        }
        function show () {
            // Создание списка групп
            $groups=V_DB::fetchAll('SELECT * FROM v_user_groups');
            // Получение информации о пользователе
            $ul=V_DB::fetch('SELECT * FROM v_user_list WHERE id='.$router->getId());
            // Добавление переменных в шаблонизатор
            if (isset ($ul)) $this->assign('user',$ul);
            if (isset ($groups)) $this->assign('groups',$groups);
            $this->display('header.tpl');
            $this->display('pages/users/show.tpl');
            $this->display('footer.tpl');
        }
        function add () {
        	$user=V_Engine::create('User');
            // Если форма отправлена - проверка данных
            if (isset ($_POST['action']) and $_POST['action']=='add') {
                $error=false;
                if (trim($_POST['name']) == '') $error=true;
                if (trim($_POST['login']) == '') $error=true;
                if (trim($_POST['pass']) == '') $error=true;
                if (trim($_POST['group']) == '') $error=true;
                if (trim($_POST['city']) == '') $error=true;
                if (V_User::getGroup()!=0 or 
                	V_User::getCity()!=0 and (V_User::getCity()!=$_POST['city'] or trim($_POST['group'])==0)	
                ) $error=true;
                if (!$error) {
                    $result=V_DB::select('v_user_list','login='.V_DB::escape($_POST['login']));
                    if (($result) and (V_DB::num_rows($result)>0)) echo "EXIST";
                    else {
                    	if (V_DB::insert('v_user_list',Array(
                			Array ('name' => 'name','value' => '"'.V_DB::escape($_POST['name']).'"'),
            				Array ('name' => 'login','value' => '"'.V_DB::escape($_POST['login']).'"'),
            				Array ('name' => 'pass','value' => '"'.md5(V_DB::escape($_POST['pass']).'666').'"'),
            				Array ('name' => 'group_id','value' => '"'.V_DB::escape($_POST['group']).'"'),
            				Array ('name' => 'user_city_id','value' => '"'.V_DB::escape($_POST['city']).'"'),
            				Array ('name' => 'user_service_id','value' => '"'.V_DB::escape($_POST['service']).'"')
                		))) echo "OK";
                    }
                }
            }
        }
        function delete () {
			$user=V_Engine::create('User');
			$router = V_Engine::create('Router');
			$result=V_DB::select('v_user_list','id='.V_DB::escape($router->getId()));
			$user_t=V_DB::fetch_array($result);
        	if (V_User::getGroup()!=0 or 
                	V_User::getCity()!=0 and (V_User::getCity()!=$user_t['user_city_id'] or $user_t['group_id']==0)	
                ) $error=true;
            else $error=false;
            if(!$error) {
            	V_DB::query('DELETE FROM v_user_list WHERE id='.V_DB::escape($router->getId()));
            	echo "OK";
            }
        }
        function edit () {
            V_Engine::load('DB');
            $router=V_Engine::create('Router');
            $user=V_Engine::create('User');
            // Получение информации о пользователе
            $result=V_DB::query('SELECT * FROM v_user_list WHERE id='.V_DB::escape($router->getId()));
            if ($result)
                $ul=V_DB::fetch_array($result);
        	// Получение списка групп
            $result=V_DB::query('SELECT group_name FROM v_user_groups');
            if ($result) {
            	for ($i=0;$i<V_DB::num_rows($result);$i++) {
                	$group=V_DB::fetch_array($result);
                	$ul['user_group_list'][]=$group['group_name'];
            	}
            }
            if (V_User::getGroup()!=0 or 
                	V_User::getCity()!=0 and (V_User::getCity()!=$_POST['city'] or trim($_POST['group'])==0)	
                ) $error=true;
            else $error=false;
        	// Изменение рабочего листа
            if (isset($_POST['action']) and $_POST['action']=="edit" and !$error) {
            	// Проверка рабочего листа
            	$wl['name']=V_DB::escape($_POST['user_name']);
            	$wl['login']=V_DB::escape($_POST['user_login']);
            	$wl['group_id']=V_DB::escape($_POST['user_group']);
            	// Применение параметров, если нет ошибок
            	if (true) {
            		V_DB::update ('v_user_list',$router->getId(),Array(
            			Array ('name' => 'name', 'value' => '"'.$wl['name'].'"'),
            			Array ('name' => 'login', 'value' => '"'.$wl['login'].'"'),
            			Array ('name' => 'group_id', 'value' => '"'.$wl['group_id'].'"')
            		));
            		$router->setPage('users','edit',$router->getId());
            	}
            }
            $this->assign('ul',$ul);
            $this->assign('page_title','Редактирование пользователя');
            $this->display('header.tpl');
            $this->display('pages/users/edit.tpl');
            $this->display('footer.tpl');
        }
    }